home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 August / ENTER.ISO / files / gimp-2.0.5-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / 3d-outline.scm next >
Encoding:
GIMP Script-Fu Script  |  2004-09-26  |  6.4 KB  |  160 lines

  1. ; 3d-outlined-patterned-shadowed-and-bump-mapped-logo :)
  2. ; creates outlined border of a text with patterns
  3. ;
  4. ; The GIMP -- an image manipulation program
  5. ; Copyright (C) 1995 Spencer Kimball and Peter Mattis
  6. ;
  7. ; 3d-outline creates outlined border of a text with patterns
  8. ; Copyright (C) 1998 Hrvoje Horvat
  9. ;
  10. ; This program is free software; you can redistribute it and/or modify
  11. ; it under the terms of the GNU General Public License as published by
  12. ; the Free Software Foundation; either version 2 of the License, or
  13. ; (at your option) any later version.
  14. ;
  15. ; This program is distributed in the hope that it will be useful,
  16. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. ; GNU General Public License for more details.
  19. ;
  20. ; You should have received a copy of the GNU General Public License
  21. ; along with this program; if not, write to the Free Software
  22. ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  
  24. (define (apply-3d-outline-logo-effect img
  25.                       logo-layer
  26.                       text-pattern
  27.                       outline-blur-radius
  28.                       shadow-blur-radius
  29.                       bump-map-blur-radius
  30.                       noninteractive
  31.                       s-offset-x
  32.                       s-offset-y)
  33.   (let* ((width (car (gimp-drawable-width logo-layer)))
  34.          (height (car (gimp-drawable-height logo-layer)))
  35.          (bg-layer (car (gimp-layer-new img width height
  36.                     RGB-IMAGE "Background" 100 NORMAL-MODE)))
  37.          (pattern (car (gimp-layer-new img width height
  38.                        RGBA-IMAGE "Pattern" 100 NORMAL-MODE)))
  39.          (old-fg (car (gimp-palette-get-foreground)))
  40.          (old-bg (car (gimp-palette-get-background))))
  41.     (gimp-selection-none img)
  42.     (script-fu-util-image-resize-from-layer img logo-layer)
  43.     (gimp-image-add-layer img pattern 1)
  44.     (gimp-image-add-layer img bg-layer 2)
  45.     (gimp-palette-set-background '(255 255 255))
  46.     (gimp-edit-fill bg-layer BACKGROUND-FILL)
  47.     (gimp-edit-clear pattern)
  48.     (gimp-layer-set-preserve-trans logo-layer TRUE)
  49.     (gimp-palette-set-foreground '(0 0 0))
  50.     (gimp-edit-fill logo-layer FOREGROUND-FILL)
  51.     (gimp-layer-set-preserve-trans logo-layer FALSE)
  52.     (plug-in-gauss-iir 1 img logo-layer outline-blur-radius TRUE TRUE)
  53.  
  54.     (gimp-drawable-set-visible pattern FALSE)
  55.     (set! layer2 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
  56.     (plug-in-edge 1 img layer2 2 1 0)
  57.     (set! layer3 (car (gimp-layer-copy layer2 TRUE)))
  58.     (gimp-image-add-layer img layer3 2)
  59.     (plug-in-gauss-iir 1 img layer2 bump-map-blur-radius TRUE TRUE)
  60.  
  61.     (gimp-selection-all img)
  62.     (gimp-patterns-set-pattern text-pattern)
  63.     (gimp-edit-bucket-fill pattern PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
  64.     (plug-in-bump-map noninteractive img pattern layer2
  65.               110.0 45.0 4 0 0 0 0 TRUE FALSE 0)
  66.  
  67.     (set! pattern-mask (car (gimp-layer-create-mask pattern ADD-ALPHA-MASK)))
  68.     (gimp-layer-add-mask pattern pattern-mask)
  69.  
  70.     (gimp-selection-all img)
  71.     (gimp-edit-copy layer3)
  72.     (set! floating_sel (car (gimp-edit-paste pattern-mask FALSE)))
  73.     (gimp-floating-sel-anchor floating_sel)
  74.  
  75.     (gimp-layer-remove-mask pattern MASK-APPLY)
  76.     (gimp-invert layer3)
  77.     (plug-in-gauss-iir 1 img layer3 shadow-blur-radius TRUE TRUE)
  78.  
  79.     (gimp-drawable-offset layer3 0 1 s-offset-x s-offset-y)
  80.  
  81.     (gimp-drawable-set-visible layer2 FALSE)
  82.     (gimp-drawable-set-visible pattern TRUE)
  83.     ;;(set! final (car (gimp-image-flatten img)))
  84.  
  85.     (gimp-palette-set-background old-bg)
  86.     (gimp-palette-set-foreground old-fg)))
  87.  
  88. (define (script-fu-3d-outline-logo-alpha img
  89.                      logo-layer
  90.                      text-pattern
  91.                      outline-blur-radius
  92.                      shadow-blur-radius
  93.                      bump-map-blur-radius
  94.                      noninteractive
  95.                      s-offset-x
  96.                      s-offset-y)
  97.   (begin
  98.     (gimp-image-undo-group-start img)
  99.     (apply-3d-outline-logo-effect img logo-layer text-pattern
  100.                   outline-blur-radius shadow-blur-radius
  101.                   bump-map-blur-radius noninteractive
  102.                   s-offset-x s-offset-y)
  103.     (gimp-image-undo-group-end img)
  104.     (gimp-displays-flush)))
  105.  
  106. (script-fu-register "script-fu-3d-outline-logo-alpha"
  107.                     _"<Image>/Script-Fu/Alpha to Logo/3D _Outline..."
  108.                     "Creates outlined texts with drop shadow"
  109.                     "Hrvoje Horvat (hhorvat@open.hr)"
  110.                     "Hrvoje Horvat"
  111.                     "07 April, 1998"
  112.                     "RGBA"
  113.                     SF-IMAGE    "Image" 0
  114.                     SF-DRAWABLE "Drawable" 0
  115.             SF-PATTERN _"Pattern" "Parque #1"
  116.                     SF-ADJUSTMENT   _"Outline Blur Radius" '(5 1 200 1 10 0 1)
  117.                     SF-ADJUSTMENT   _"Shadow Blur Radius" '(10 1 200 1 10 0 1)
  118.                     SF-ADJUSTMENT   _"Bumpmap (Alpha Layer) Blur Radius" '(5 1 200 1 10 0 1)
  119.             SF-TOGGLE  _"Default Bumpmap Settings" TRUE
  120.             SF-ADJUSTMENT   _"Shadow X Offset" '(0 0 200 1 5 0 1)
  121.                     SF-ADJUSTMENT   _"Shadow Y Offset" '(0 0 200 1 5 0 1))
  122.  
  123. (define (script-fu-3d-outline-logo text-pattern
  124.                    text
  125.                    size
  126.                    font
  127.                    outline-blur-radius
  128.                    shadow-blur-radius
  129.                    bump-map-blur-radius
  130.                    noninteractive
  131.                    s-offset-x
  132.                    s-offset-y)
  133.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  134.          (text-layer (car (gimp-text-fontname img -1 0 0 text 30 TRUE size PIXELS font))))
  135.     (gimp-image-undo-disable img)
  136.     (apply-3d-outline-logo-effect img text-layer text-pattern
  137.                   outline-blur-radius shadow-blur-radius
  138.                   bump-map-blur-radius noninteractive
  139.                   s-offset-x s-offset-y)
  140.     (gimp-image-undo-enable img)
  141.     (gimp-display-new img)))
  142.  
  143. (script-fu-register "script-fu-3d-outline-logo"
  144.                     _"<Toolbox>/Xtns/Script-Fu/Logos/3D _Outline..."
  145.                     "Creates outlined texts with drop shadow"
  146.                     "Hrvoje Horvat (hhorvat@open.hr)"
  147.                     "Hrvoje Horvat"
  148.                     "07 April, 1998"
  149.                     ""
  150.             SF-PATTERN _"Pattern" "Parque #1"
  151.                     SF-STRING  _"Text" "The Gimp"
  152.                     SF-ADJUSTMENT _"Font Size (pixels)" '(100 2 1000 1 10 0 1)
  153.                     SF-FONT    _"Font" "RoostHeavy"
  154.                     SF-ADJUSTMENT   _"Outline Blur Radius" '(5 1 200 1 10 0 1)
  155.                     SF-ADJUSTMENT   _"Shadow Blur Radius" '(10 1 200 1 10 0 1)
  156.                     SF-ADJUSTMENT   _"Bumpmap (Alpha Layer) Blur Radius" '(5 1 200 1 10 0 1)
  157.             SF-TOGGLE  _"Default Bumpmap Settings" TRUE
  158.             SF-ADJUSTMENT   _"Shadow X Offset" '(0 0 200 1 5 0 1)
  159.                     SF-ADJUSTMENT   _"Shadow Y Offset" '(0 0 200 1 5 0 1))
  160.